package ar.com.aterrizar.operaciones;

import java.util.ArrayList;
import java.util.Collection;

import org.uqbar.commons.model.UserException;

import ar.com.aterrizar.asientos.Asiento;
import ar.com.aterrizar.asientos.AsientoOceanic;
import ar.com.aterrizar.entidades.*;
import ar.com.aterrizar.exception.ErrorEnCompraException;
import ar.com.aterrizar.exception.VueloNoDisponibleException;
import ar.com.aterrizar.exception.VueloYaReservadoException;

public class Compra {

	private Float montoGastado=(float) 0;
	private Collection<Asiento> listaDeAsientosComprados = new ArrayList<Asiento>();

	public Compra(){
	}
	/**
	 * Para test
	 */
	
	public Compra(String cod, Integer num){
		listaDeAsientosComprados.add(new AsientoOceanic(cod, num));
	}

	public void comprarPasaje(Asiento asiento,Cliente cliente){
		try {
			if((asiento.estaReservado())&&(!asiento.estaReservado(cliente))){
				throw new VueloYaReservadoException();
			}
			Aeropuerto.getInstance().comprar(asiento, cliente);
			this.montoGastado += asiento.getPrecio(cliente);
			this.listaDeAsientosComprados.add(asiento);
		} catch (ErrorEnCompraException e) {
			throw new VueloNoDisponibleException();
		}
	}

	public Float getMontoGastado(){
		return this.montoGastado;
	}

	public Collection<Asiento> getAsientosComprados(){
		return this.listaDeAsientosComprados;
	}
}

